package com.qiqidream.admin.system.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.qiqidream.admin.common.base.BaseEntity;
import com.qiqidream.admin.common.entity.ApiPath;
import com.qiqidream.admin.common.enums.MenuType;
import io.swagger.annotations.ApiModel;
import lombok.*;

import java.util.List;

/**
 * 系统管理-菜单表
 * @author QiQiDream
 * @since 2019/11/18 10:53
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName(autoResultMap = true,value = "sys_menu")
public class Menu extends BaseEntity {
	/**
	 * 父级id
	 */
	private Long parentId;
	/**
	 * 路由地址
	 */
	private String path;
	/**
	 * 重定向地址，在面包屑中点击会重定向去的地址
	 */
	private String redirect;
	/**
	 * 菜单编码（开启缓存时,需要与组件名一致，不可重复）
	 */
	private String code;
	/**
	 * 标题
	 */
	private String title;
	/**
	 * 图标
	 */
	private String icon;
	/**
	 * 组件路径
	 */
	private String component;
	/**
	 * 是否左侧路由显示
	 */
	@TableField("is_hidden")
	private Boolean hidden;
	/**
	 * 是否缓存
	 */
	@TableField("is_cache")
	private Boolean cache;
	/**
	 * 类型（'目录','菜单','按钮'）
	 */
	private MenuType type;
	/**
	 * 菜单请求路径
	 */
	@TableField(typeHandler = FastjsonTypeHandler.class)
	private ApiPath apiPath;
	/**
	 * 排序
	 */
	@TableField(value = "sort",fill = FieldFill.INSERT)
	private Integer sort;

}
